package cn.biplam.front.html;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.base.HtmlWindow;

/**
 * 超链接
 * @author 	WangSong 2009-4-10 上午09:38:07
 * @version 1.0
 */
public class HtmlAnchor extends HtmlWindow {
	
	private String href;
	private String target;
	private String text;

	/**构造方法	无参构造
	 */
	public HtmlAnchor(){
	}

	/**构造方法		传入对象的页面ID初始化
	 * @param ID	页面ID
	 */
	public HtmlAnchor(String ID){
		super(ID);
	}

	/**构造方法 传入对象的页面ID和CSSID初始化
	 * @param ID
	 * @param cssID
	 */
	public HtmlAnchor(String ID,String cssID){
		super(ID,cssID);
	}

	/**返回实现类自定义的位于对象起始和结束标签内的 HTML
	 * @param sb
	 * @throws ErrorMessage
	 */
	protected void _getContent(StringBuilder sb) throws ErrorMessage {
		if(this.text!=null){
			sb.append(this.text);
		}
	}

	/**复制对象
	 * @return 复制好的新HtmlWindow对象
	 * @throws ErrorMessage
	 */
	public HtmlWindow copy() throws ErrorMessage {
		HtmlAnchor anchor=new HtmlAnchor(this.getID(),this.getCssID());
		anchor.href=this.href;
		anchor.target=this.target;
		anchor.text=this.text;
		super._copy(anchor);
		return anchor;
	}
	
	/**
	 * 返回超链接url
	 * @return	超链接url
	 */
	public String getHref() {
		return href;
	}

	/**
	 * 获取对象及其内容的 HTML 形式(不包含客户端绑定脚本)
	 * @param sb
	 * @throws ErrorMessage
	 */
	public void getHtml(StringBuilder sb) throws ErrorMessage {
		sb.append("<A");
		if(this.href!=null){
			sb.append(" href=");
			sb.append(this.href);
		}
		if(this.target!=null){
			sb.append(" target=");
			sb.append(this.target);
		}
		sb.append(" ");
		super.writeTagSetting(sb);
		sb.append(">");
		this.getContent(sb);
		sb.append("</A>\n");
	}
	
	/**
	 * 返回超链接的Target
	 * @return	超链接的Target
	 */
	public String getTarget() {
		return target;
	}

	/**
	 * 向超链接内直接放入一段文本
	 * @param sText
	 */
	public void put(String sText){
		this.text=sText;
	}

	/**
	 * 设置超链接url
	 * @param href
	 */
	public void setHref(String href) {
		this.href = href;
	}

	/**
	 * 设置超链接Target
	 * @param target
	 */
	public void setTarget(String target) {
		this.target = target;
	}

}
